package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.RepBeneficioOtorgadoDAO;
import com.cs.beneficios.business.entity.UsuarioSubprogramaDAO;
//import com.cs.beneficios.business.model.ProgramaVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.business.model.UserVO;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class SearchSelectionPermissionAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    HttpSession session = request.getSession();
    
    String strCodeUser = "";
    Collection programas=null;
    Collection subprogramas=null;
    List lUsuarios = new LinkedList();
    List lConsultas = new LinkedList();
    lUsuarios = (List)session.getAttribute("ListaUsuarios");
    List lGrupoUser = new LinkedList();
    
    Object ocoduser = request.getParameter("codeusuario");
    if(ocoduser!=null)
    {
      strCodeUser = (String)ocoduser;
    }
    
    try
    {
      UsuarioSubprogramaDAO objUsuSub = new UsuarioSubprogramaDAO(cf);
      
      lGrupoUser = objUsuSub.GetGrupoUsuarios(strCodeUser);
      cf.closeConnection(objUsuSub.getConn());
      if(lGrupoUser.size()>0)
      {
        UserVO objUser = new UserVO();
        objUser = (UserVO)lGrupoUser.get(0);
        
        RepBeneficioOtorgadoDAO objBeneOtor2DAO = new RepBeneficioOtorgadoDAO(cf);
        subprogramas = objBeneOtor2DAO.findPermissionsReports(new Long(strCodeUser), objUser.getUserGroupName(), "0", objUser.getCodeArea());
        cf.closeConnection(objBeneOtor2DAO.getConn());
      }
      
    }catch(SQLException e)
    {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
    }
    if(subprogramas.size()>0)
      {
        request.setAttribute("ListaPermisos",subprogramas);
        request.setAttribute("ListaUsuario",lGrupoUser);
      }else
        request.setAttribute("msmerror","El Usuario no tiene permisos para ver ningun beneficio");
    return mapping.findForward("success");
  }
}